#ifndef MENU_H
#define MENU_H

#include "include.h"
#include "LQ_12864.h"

// 按键定义
typedef enum {
    MENU_KEY_NONE,
    MENU_KEY_UP,
    MENU_KEY_DOWN,
    MENU_KEY_LEFT,
    MENU_KEY_RIGHT,
    MENU_KEY_ENTER,
    MENU_KEY_BACK
} MenuKey;

// 菜单回调函数类型
typedef void (*MenuAction)(int8_t);

// 菜单项结构
typedef struct {
    const char* name;    // 显示名称
    int8_t value;        // 当前值
    int8_t min;         // 最小值 
    int8_t max;         // 最大值
    MenuAction action;  // 回调函数
    const char** options; // 选项文本(可选)
} MenuItem;

// 菜单模式
typedef enum {
    MODE_MAIN,
    MODE_SETTINGS,
    MODE_CALIBRATION,
    MODE_TEST,
    NUM_MODES
} MenuMode;

// 公共函数声明
void Menu_Init(void);
void Menu_Display(void);
void Menu_HandleInput(MenuKey key);
uint8_t GetMenuInput(void);
void Test_Menu(void);

// 新增函数
void Menu_AddItem(MenuMode mode, const char* name, int8_t min, int8_t max, MenuAction action);
void Menu_SetOptions(MenuMode mode, uint8_t index, const char** options);

#endif